#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>
size_t strlen(char const * const p) {
	assert(p);
	if (*p)
		return 1 + strlen(p + 1);
	return 0;
}
char* reverse(char* const p) {
	int len = strlen(p);
	if (*p) {
		char tmp = *p;
		*p = *(p + len - 1);
		*(p + len - 1) = '\0';
		reverse(p + 1);
		*(p + len - 1) = tmp;
	}
	return p;
}
int main() {

	char arr[10] = "abcde";
	printf("%s\n", arr);
	printf("%s", reverse(arr));
	return 0;
}